Combined error detection and error correction codes typically exhibit poor performance when out-of-order codewords are received. For example, in one approach, a length of data (e.g., a sector of data) is parsed into N codewords and each codeword is individually encoded with both an error detection code (EDC) and an error correction code (ECC). Although individual codewords may be decoded independently, this approach is inefficient as it requires dedicated EDC coding for each codeword and, correspondingly, that extra information be stored and transmitted.
In another approach, EDC coding is applied across a number of codewords rather than to codewords individually. This approach may handle out-of-order codewords by waiting to receive the number of codewords, resequencing the codewords, and then performing EDC decoding. However, in this approach, a large buffer is required to store codewords that are received out of order until a sufficient number of consecutively sequenced codewords is received. Further, the buffering of codewords in this manner may lead to large decoding time delays and increased memory requirements.